perm filename PGEN.SAI[REV,MUS] blob
sn#273041 filedate 1977-05-24 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "PGEN"
C00004 00003 SETPRINT("PRIMES.SAI","F")
C00005 ENDMK
C⊗;
BEGIN "PGEN"
REQUIRE "HEADER.SAI" SOURCE_FILE;
DEFINE #PRIMES=1008;
PRELOAD_WITH 2,3,5;
SAFE INTEGER ARRAY PRIMES[1:#PRIMES];
INTEGER index,prospect,inc,i,top;
index ← 3; prospect ← 5; inc ← 4;
WHILE
index < #PRIMES
DO BEGIN "next prospect"
prospect ← prospect+(inc ← 6-inc);
top ← SQRT(prospect);
FOR
i ← 3 STEP 1
WHILE
prospect MOD PRIMES[i] ≠ 0
DO
IF
PRIMES[i] ≥ top
THEN BEGIN
PRIMES[index ← index+1] ← prospect;
DONE;
END;
END "next prospect";
SETPRINT("PRIMES.SAI","F");
SETFORMAT(0,0);
PRINT(
"ENTRY;
BEGIN ""PRIMES""
INTERNAL INTEGER #PRIMES;
SIMPLE PROCEDURE init_#PRIMES;
#PRIMES ← ",#PRIMES,";
REQUIRE init_#PRIMES INITIALIZATION;
PRELOAD_WITH
");
SETFORMAT(4,0);
PRINT(PRIMES[1]);
FOR
i ← 2 STEP 1
UNTIL
#PRIMES
DO BEGIN "print a prime"
PRINT(",");
IF
(i MOD 16) = 1
THEN
PRINT(↓);
PRINT(PRIMES[i]);
END "print a prime";
SETFORMAT(0,0);
PRINT(";
INTERNAL INTEGER ARRAY PRIMES[1:",#PRIMES,"];
END ""PRIMES""
");
SETPRINT("","T");
END "PGEN"